<?php
require_once('config.php');
require_once(SERVER_ROOT. '/daos/' . 'ProcessoDAO.php');

class ProcessoTest extends PHPUnit_Framework_TestCase{
	private $processoDAO;

	public function __construct(){
		$this->processoDAO = new ProcessoDAO();
	}
	public function criarProcesso(){
		$tipo_acao = 'Criminal';
		$parte_contraria =' Test';
		$vara = '15000-x';
		$status = 1;
		$processo = array('tipo_acao'=>$tipo_acao,
				'parte_contraria'=>$parte_contraria,
				'vara'=>$vara,
				'status'=>$status,
				'id_usuario'=>1,
				'id_cliente'=>1
		);
		return $processo;
	}
	public function testSave(){
		$processo = $this->criarProcesso();
		$res = $this->processoDAO->save($processo);
		$this->assertEquals($res,1);
		$processo_persistido_cliente = $this->processoDAO->findByIdCliente($processo['id_cliente']);
		$this->assertProcesso($processo, $processo_persistido_cliente[0]);
		$processo_persistido_usuario = $this->processoDAO->findByIdUsuario($processo['id_usuario']);
		$this->assertProcesso($processo, $processo_persistido_usuario[0]);

	}
	//Trocar valores de acordo com a base para testes
	public function testRemove(){
		$processo = $this->criarProcesso();
		$res = $this->processoDAO->save($processo);
		$this->assertEquals($res,1);
		$processo = $this->processoDAO->findById(1);
		$result = $this->processoDAO->removeById($processo['id_processo']);
		$this->assertEquals($result,1);
	}
	//Trocar valores de acordo com a base para testes
	public function testFindAllByUsuario(){
		$result = $this->processoDAO->findAllByUsuario(1, '', 'id_processo', 1, 10);
		$this->assertEquals(sizeof($result),10);
	}
	//Trocar valores de acordo com a base para testes
	public function testFindByNumProcesso(){
		$result = $this->processoDAO->findByNumProcesso(2);
		$this->assertEquals($result['num_processo'],2);
	}
	public function assertProcesso($processo,$processo_persistido){
		$this->assertEquals($processo['tipo_acao'],$processo_persistido['tipo_acao']);
		$this->assertEquals($processo['parte_contraria'],$processo_persistido['parte_contraria']);
		$this->assertEquals($processo['vara'],$processo_persistido['vara']);
		$this->assertEquals($processo['status'],$processo_persistido['status']);
	}
}